package com.zidongxiangxi.sharding.job.core.executor;

/**
 * 任务执行者
 *
 * @author chenxudong
 * @date 2021/02/18
 */
public interface ShardingJobExecutor {
    /**
     * 执行分片任务
     *
     * @param shardingItem 分片项
     */
    void execute(WaitingExecuteShardingItem shardingItem);

    /**
     * 结束指定的任务分片
     *
     * @param shardingItem 分片项
     */
    void finishShardingItem(String shardingItem);

    /**
     * 结束指定任务的所有分片
     */
    void finishAllShardingItems();

    /**
     * 关闭任务执行器
     */
    void shutdown();
}
